
///////////////////////////////////////////////////////////////////////////////
//
//  Copyright (c) 2007, Arizona State University
//  All rights reserved.
//  BSD License: http://www.opensource.org/licenses/bsd-license.html
//  Author(s): Adam Kubach
//
///////////////////////////////////////////////////////////////////////////////

#include "OsgVolume/TransferFunction.h"

using namespace OsgVolume;

///////////////////////////////////////////////////////////////////////////////
//
//  Constructor.
//
///////////////////////////////////////////////////////////////////////////////

TransferFunction::TransferFunction () : 
  BaseClass (),
  _image ( 0x0 ),
  _textureUnit ( 0 )
{
}


///////////////////////////////////////////////////////////////////////////////
//
//  Destructor.
//
///////////////////////////////////////////////////////////////////////////////

TransferFunction::~TransferFunction()
{
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the image.
//
///////////////////////////////////////////////////////////////////////////////

osg::Image* TransferFunction::image() const
{
  return _image.get();
}


///////////////////////////////////////////////////////////////////////////////
//
//  Mark as dirty.
//
///////////////////////////////////////////////////////////////////////////////

void TransferFunction::dirty ()
{
  if ( _image.valid () )
    _image->dirty ();
}


///////////////////////////////////////////////////////////////////////////////
//
//  Set the texture unit.
//
///////////////////////////////////////////////////////////////////////////////

void TransferFunction::textureUnit ( unsigned int unit )
{
  _textureUnit = unit;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the texture unit.
//
///////////////////////////////////////////////////////////////////////////////

unsigned int TransferFunction::textureUnit () const
{
  return _textureUnit;
}
